$(document).ready(function () {

    //密码验证
    $('#password').bind('blur', function () {
        var strpwd = $("#password").val();
        if (strpwd === "") {
            $("#msg_pwd").html("请填写密码,6-20位字符，可以是字母，数字，符号的组合");
            return false;
        }
        else {
            if (strpwd.length >= 6 && strpwd.length <= 20) {
                $("#msg_pwd").html("");
            } else {
                $("#msg_pwd").html("6-20位字符，可以是字母，数字，符号的组合");
                return false;
            }
        }
    });
    $('#repassword').bind('blur', function () {
        var repassword = $.trim($("#repassword").val());
        var strpwd = $.trim($("#password").val());
        if (repassword === "") {
            $("#msg_repwd").html("两次输入密码不一致");
            return false;
        }
        else {
            if (repassword !== strpwd) {
                $("#msg_repwd").html("两次输入密码不一致");
                return false;
            }
            else {
                $("#msg_repwd").html("");
            }
        }
    });
    //手机验证
    $('#mobile').bind('blur', function () {
        checkMobile();
    });

    $('#checkcode').bind('keyup', function () {
        var yzms = $.trim($("#checkcode").val());
        if (yzms.length === 6) {
            $.ajax({
                type: "post",
                url: "/user/getSendMcodeCookie.do",
                timeout: 1000,
                data: {yzm: yzms},
                dataType: "text",
                cache: false,
                success: function (data) {
                    if (data === "1") {
                        $("#msg_yzm").html("");
                        $("#btnRegist").prop("disabled", false);
                    } else {
                        $("#btnRegist").prop("disabled", true);
                        $("#msg_yzm").html("验证码不正确，请核对！");
                    }
                }
            });
        }
    });

    $("#btnRegist").click(function () {
        var strpwd = $("#password").val();
        var repassword = $("#repassword").val();
        var strmobile = $("#mobile").val();
        var yzm = $("#checkcode").val();
        var xieyi = document.getElementById("xieyi_read").checked;

        if (strmobile === "") {
            $("#msg_mobile").html("填写手机号码不能为空！");
            return false;
        }
        else {
            if (!isMoible(strmobile)) {
                $("#msg_mobile").html("填写手机号码格式不正确！");
                return false;
            }
            else {
                $("#msg_mobile").html("");
            }
        }

        if (strpwd === "") {
            $("#msg_pwd").html("6-20位字符，可以是字母，数字，符号的组合");
            return false;
        }
        else {
            if (strpwd.length >= 6 && strpwd.length <= 20) {
                $("#msg_pwd").html("");
            } else {
                $("#msg_pwd").html("6-20位字符，可以是字母，数字，符号的组合");
                return false;
            }
        }

        if (repassword === "") {
            $("#msg_repwd").html("两次输入密码不一致");
            return false;
        }
        else {
            if (repassword !== strpwd) {
                $("#msg_repwd").html("两次输入密码不一致");
                return false;
            }
            else {
                $("#msg_repwd").html("");
            }
        }


        if (yzm === "") {
            $("#msg_yzm").html("填写验证码不能为空！");
            return false;
        } else {
            $("#msg_yzm").html("");
        }
        if (!xieyi) {
            $("#msg_xieyi").html("未选中用户协议！");
            return false;
        } else {
            $("#msg_xieyi").html("");
        }
        
        $.ajax({
            type: "post",
            url: "/register/addUser.do",
            timeout: 1000,
            data: {mobile:strmobile,password:strpwd,mobileCaptcha:yzm },
            dataType: "text",
            cache: false,
            success: function (data) {
                if (data === "success") {
                    alert("注册成功");
                    location.href = "/index.do";
                } else {
                    alert("注册失败");
                }
            }
        });

    });


});

function checkMobile() {
    var strmobile = $("#mobile").val();
    if (strmobile === "") {
        $("#msg_mobile").html("填写手机号码不能为空！");
        return false;
    }
    else {
        if (!isMoible(strmobile)) {
            $("#msg_mobile").html("填写手机号码格式不正确！");
            return false;
        }
        else {
            $("#msg_mobile").html("");
        }
    }
}

var InterValObj; //timer变量，控制时间
var count = 90; //间隔函数，1秒执行
var curCount;//当前剩余秒数
var code = ""; //验证码
var codeLength = 6;//验证码长度
function sendMessage() {
    var strmobile = $("#mobile").val();
    if (strmobile === "") {
        $("#msg_mobile").html("填写手机号码不能为空！");
        return;
    }
    else {
        if (!isMoible(strmobile)) {
            $("#msg_mobile").html("填写手机号码格式不正确！");
            return;
        }
        else {
            $("#msg_mobile").html("");
        }
    }

    curCount = count;
    //产生验证码
    for (var i = 0; i < codeLength; i++) {
        code += parseInt(Math.random() * 9).toString();
    }
    //设置button效果，开始计时               
    $("#btnSendCode").prop("disabled", true);
    $("#btnSendCode").html("请在" + curCount + "秒内输入");
    InterValObj = window.setInterval(SetRemainTime, 1000);
    //启动计时器，1秒执行一次//向后台发送处理数据       
//    $.ajax({
//        type: "post",
//        url: "/user/SendMessageCode.do",
//        timeout: 1000,
//        data: {up: $.trim($("#mobile").val())},
//        dataType: "text",
//        cache: false,
//        success: function (data) {
//            if (data == "0") {
//                curCount = 0;
//                $("#btnSendCode").prop("disabled", false);
//                //启用按钮                
//                $("#btnSendCode").html("重新发送验证码");
//            }
//        }
//    });

}


//timer处理函数
function SetRemainTime() {
    if (curCount === 0) {
        window.clearInterval(InterValObj);
        //停止计时器               
        $("#btnSendCode").prop("disabled", false);
        //启用按钮                
        $("#btnSendCode").html("重新发送验证码");
        //清除验证码。如果不清除，过时间后，输入收到的验证码依然有效       
        $.ajax({
            type: "post",
            url: "/user/delSendMcodeCookie.do",
            timeout: 1000,
            dataType: "text",
            cache: false,
            success: function (data) {
                if (data === "0") {
                    $("#btnSendCode").prop("disabled", true);
                }
            }
        });
    }
    else {
        curCount--;
        $("#btnSendCode").html("请在" + curCount + "秒内输入");
    }
}

//检查字符串是否只包含数字
function istrue(str) {
    var reg = /^[0-9]*$/ig;
    return reg.test(str);
}
//CharMode函数 
//测试某个字符是属于哪一类. 
function CharMode(iN) {
    if (iN >= 48 && iN <= 57) //数字 
        return 1;
    if (iN >= 65 && iN <= 90) //大写字母 
        return 2;
    if (iN >= 97 && iN <= 122) //小写 
        return 4;
    else
        return 8; //特殊字符 
}
//bitTotal函数 
//计算出当前密码当中一共有多少种模式 
function bitTotal(num) {
    modes = 0;
    for (var i = 0; i < 4; i++) {
        if (num & 1)
            modes++;
        num >>>= 1;
    }
    return modes;
}
//checkStrong函数 
//返回密码的强度级别 
function checkStrong(sPW) {
    if (sPW.length <= 4)
        return 0; //密码太短 
    Modes = 0;
    for (var i = 0; i < sPW.length; i++) {
        //测试每一个字符的类别并统计一共有多少种模式. 
        Modes |= CharMode(sPW.charCodeAt(i));
    }
    return bitTotal(Modes);
}
//pwStrength函数 
//当用户放开键盘或密码输入框失去焦点时,根据不同的级别显示不同的颜色 
function pwStrength(pwd) {
    if (pwd.length >= 6 && pwd.length <= 20) {
        $("#msg_pwd").html("");
    } else {
        $("#msg_pwd").html("6-20位字符，可以是字母，数字，符号的组合");
    }
    O_color = "tc_zhuce_ruo_1";
    L_color = "tc_zhuce_ruo_11";
    M_color = "tc_zhuce_ruo_11";
    H_color = "tc_zhuce_ruo_11";
    if (pwd === null || pwd === '') {
        Lcolor = Mcolor = Hcolor = O_color;
    }
    else
    {
        S_level = checkStrong(pwd);

        switch (S_level)
        {
            case 0:
                Lcolor = Mcolor = Hcolor = O_color;
            case 1:
                Lcolor = L_color;
                Mcolor = Hcolor = O_color;
                break;
            case 2:
                Lcolor = Mcolor = M_color;
                Hcolor = O_color;
                break;
            default:
                Lcolor = Mcolor = Hcolor = H_color;
        }
    }
    $("#jindutiao_1").removeClass().addClass(Lcolor);
    $("#jindutiao_2").removeClass().addClass(Mcolor);
    $("#jindutiao_3").removeClass().addClass(Hcolor);
    return;
}
function isMoible(mobile) {
    if (!(/^1[3|4|5|7|8][0-9]\d{8}$/.test(mobile))) {
        return false;
    }
    return true;
}
